Dimensional compensations for additive manufacturing

ABSTRACT

In an example, a method includes receiving, at at least one processor, object model data representing at least a portion of an object that is to be generated by an additive manufacturing apparatus by fusing build material within a fabrication chamber. An intended object placement location within the fabrication chamber may be determined, and a dimensional compensation to apply to the object model data may be determined using a mapping resource relating dimensional compensations to object placement locations. The determined dimensional compensation may be applied to the object model data to generate modified object model data using at least one processor.

BACKGROUND

Additive manufacturing techniques may generate a three-dimensionalobject through the solidification of a build material, for example on alayer-by-layer basis. In examples of such techniques, build material maybe supplied in a layer-wise manner and the solidification method mayinclude heating the layers of build material to cause melting inselected regions. In other techniques, chemical solidification methodsmay be used.

BRIEF DESCRIPTION OF DRAWINGS

Non-limiting examples will now be described with reference to theaccompanying drawings, in which:

FIG. 1 is a flowchart of an example method of modifying object modeldata;

FIGS. 2A and 2B show visualisations of example mapping resources;

FIG. 3 shows an example method of object generation;

FIGS. 4 and 5 are simplified schematic drawings of example apparatus foradditive manufacturing; and

FIG. 6 is a simplified schematic drawing of an example machine-readablemedium associated with a processor.

DETAILED DESCRIPTION

Additive manufacturing techniques may generate a three-dimensionalobject through the solidification of a build material. In some examples,the build material is a powder-like granular material, which may forexample be a plastic, ceramic or metal powder and the properties ofgenerated objects may depend on the type of build material and the typeof solidification mechanism used. In some examples the powder may beformed from, or may include, short fibres that may, for example, havebeen cut into short lengths from long strands or threads of material.Build material may be deposited, for example on a print bed andprocessed layer by layer, for example within a fabrication chamber.According to one example, a suitable build material may be PA12 buildmaterial commercially referred to as V1R10A “HP PA12” available from HPInc.

In some examples, selective solidification is achieved using heat, forexample through directional application of energy, for example using alaser or electron beam which results in solidification of build materialwhere the directional energy is applied. In other examples, at least oneprint agent may be selectively applied to the build material, and may beliquid when applied. For example, a fusing agent (also termed a‘coalescence agent’ or ‘coalescing agent’) may be selectivelydistributed onto portions of a layer of build material in a patternderived from data representing a slice of a three-dimensional object tobe generated (which may for example be generated from structural designdata). The fusing agent may have a composition which absorbs energy suchthat, when energy (for example, heat) is applied to the layer, the buildmaterial heats up, coalesces and solidifies upon cooling, to form aslice of the three-dimensional object in accordance with the pattern. Inother examples, coalescence may be achieved in some other manner.

According to one example, a suitable fusing agent may be an ink-typeformulation comprising carbon black, such as, for example, the fusingagent formulation commercially referred to as V1Q60A “HP fusing agent”available from HP Inc. In one example such a fusing agent may comprisean infra-red light absorber. In one example such a fusing agent maycomprise a near infra-red light absorber. In one example such a fusingagent may comprise a visible light absorber. In one example such afusing agent may comprise a UV light absorber. Examples of print agentscomprising visible light enhancers are dye based colored ink and pigmentbased colored ink, such as inks commercially referred to as CE039A andCE042A available from HP Inc.

In addition to a fusing agent, in some examples, a print agent maycomprise a coalescence modifier agent, which acts to modify the effectsof a fusing agent for example by reducing or increasing coalescence orto assist in producing a particular finish or appearance to an object,and such agents may therefore be termed detailing agents. In someexamples, detailing agent may be used near edge surfaces of an objectbeing printed. According to one example, a suitable detailing agent maybe a formulation commercially referred to as V1Q61A “HP detailing agent”available from HP Inc. A coloring agent, for example comprising a dye orcolorant, may in some examples be used as a fusing agent or acoalescence modifier agent, and/or as a print agent to provide aparticular color for the object.

As noted above, additive manufacturing systems may generate objectsbased on structural design data. This may involve a designer generatinga three-dimensional model of an object to be generated, for exampleusing a computer aided design (CAD) application. The model may definethe solid portions of the object. To generate a three-dimensional objectfrom the model using an additive manufacturing system, the model datacan be processed to generate slices of parallel planes of the model.Each slice may define a portion of a respective layer of build materialthat is to be solidified or caused to coalesce by the additivemanufacturing system.

FIG. 1 is an example of a method, which may comprise a computerimplemented method of modifying object model data.

The method comprises, in block 102, receiving, at at least oneprocessor, object model data representing at least a portion of anobject that is to be generated by an additive manufacturing apparatus byfusing build material within a fabrication chamber. In some examples,the fusing process may comprise a thermal fusing processing in whichheat is applied.

The object represented by the object model data is to be generated by anadditive manufacturing apparatus by fusing build material. The objectmodel may comprise data representing at least a portion (in someexamples, a slice) of an object to be generated by an additivemanufacturing apparatus by fusing a build material. The object modeldata may for example comprise a Computer Aided Design (CAD) model,and/or may for example be a STereoLithographic (STL) data file. In someexamples, the object model data may represent the object or objectportion as a plurality of sub-volumes, wherein each sub-volumerepresents a region of the object which is individually addressable inobject generation. In some examples herein, the sub-volumes may bereferred to as voxels, i.e. three-dimensional pixels.

The method further comprises in block 104, determining, using at leastone processor, an indication of an intended object placement within thefabrication chamber. For example, this may be determined based on acoordinate system. For example, a corner of the fabrication chamber maybe designated as the origin and X, Y and Z offsets may be used tospecify a location of an object. The location of the object whengenerated may be characterised as an indicative point location. Forexample, the location may be characterised as the coordinates of thecenter of mass of the object when generated, or the volumetric center ofthe object. In other examples, the indication may comprise an indicationof the point on the object which is the closest to the origin in eachaxis, or may be defined by reference to an enclosing volume (e.g. acenter or a corner of a bounding box enclosing the object), or in someother way. The location may be a location in at least one directiondimension, for example at least one of the X, Y or Z axis, and may insome examples comprise an xyz coordinate (although in other example,indication of the intended object placement may be a specification of aposition in one or two axes, rather than all three axes, may beprovided).

Block 106 comprises determining, using at least one processor, adimensional compensation to apply to the object model data, wherein thedimensional compensation is determined using a mapping resource relatingdimensional compensations to object placement locations within afabrication chamber.

Dimensional compensation may be used to compensate for anticipateddepartures from intended dimensions when generating an object. Forexample, it may be the case that when an object is generated in aprocess which includes heat, additional build material may adhere to theobject on generation. To consider a slice or layer of an object, in anexample, print agent may be applied (and/or control instructions may bespecified) with a resolution of around 600 dpi (dots per inch) or 1200dpi. In other examples, other resolutions may be used for controlinstructions and/or print agent application. A resolution of 600 dpimay, in some examples, allow a uniquely addressable region of 42 by 42microns in cross section, and thus voxels may be defined to relate to a42 by 42 micron region. Print agent may be associated with a group ofvoxels, which in turn correspond to regions of the layer. However, whenfusing agent has been applied and energy is supplied, build material ofneighbouring regions/voxels may become heated and fuse to the outside ofthe object (in some examples, being fully or partially melted, oradhering to melted build material as powder). Therefore, a dimension ofan object(s) may be larger than the regions to which fusing agent isapplied. In order to compensate for the fact that objects may tend to‘grow’ during manufacture in this manner, the object volume as describedin object model data may be reduced.

In other examples, objects may be smaller following object generationthan is specified when printed. For example, some build materials usedto generate objects may shrink on cooling.

While in some examples the dimensional compensation to apply maybedetermined for example based on an analysis of thermal and/or materialconsiderations and the like, according to the method of FIG. 1, thedimensional compensation is determined by use of a mapping resourcerelating dimensional compensations to intended object placementlocations. It has been noted that dimensional accuracy may besignificantly improved by considering this location alone (although insome examples, the method may be used in combination with othertechniques to further increase dimensional accuracy).

In some examples, the dimensional compensation may comprise aparametrical transformation, for example a geometrical and/dimensionaltransformation such as at least one of an offset and a scaling factor.In one example, a dimensional compensation may indicate three scalingfactors (one for each of the three orthogonal dimensions) and threeoffset factors (one for each of the three orthogonal dimensions). Ascaling factor may be used to multiply all specified dimensions indirection of the first axis by a value, which may be greater than 1 inorder to increase the dimensions and less than 1 to reduce thedimensions. An offset factor may specify, for example by a specifieddistance or a number of voxels, an amount to add or remove from asurface of the object (or a perimeter within a layer). For example, adistance as measured in the direction of a normal from the objectsurface may be specified and the object may be eroded or dilated (i.e.,inflated or enlarged) by this distance.

The dimensional compensation may for example be applied to a mesh orvector, or voxel model of the object, or to a model of the objectdefined in some other way.

In some examples, where scaling is not indicated in a given dimension,the scaling factor in relation to that dimension may be set to 1, and ifno offset is indicated in a given dimension, the offset factor inrelation to that dimension may be set to 0. In some examples, each ofthese factors may be stored in a different mapping resource, while inother examples a plurality of factors may be specified in the samemapping resource.

As will be set out in greater detail below, in some examples, themapping resource could comprise a plurality of values which relate todispersed locations within a fabrication chamber, for example comparableto nodes of a three-dimensional grid of locations within a fabricationchamber. In some examples, the value which relates to the locationclosest to the location provided by the indication of an intended objectplacement may be selected. However, in other examples, a compensation toapply may be interpolated as being between such values, for example bydetermining a weighted average or the like.

In some examples, the predetermined mapping resource may be derived froman inference model, which may be generated using a training datasetderived from objects previously generated using additive manufacturing.

Block 108 comprises applying, using at least one processor, thedetermined dimensional compensation to the object model data todetermine modified object model data. In some examples, where the objectmodel data is described in terms of sub-volumes, such sub-volumes may beadded or removed (or eroded). Where the object is, for example,described by a mesh model or the like, the mesh model may be adjusted,expanded or contracted as set out by the determined dimensionalcompensation.

In one example, the dimensional compensation may indicate three scalingfactors (one for each of the three orthogonal dimensions) and threeoffset factors (one for each of the three orthogonal dimensions). Asnoted above, if scaling is not indicated in a given dimension, thescaling factor in relation to that dimension may be set to 1, and if nooffset is indicated in a given dimension, the offset factor in relationto that dimension may be set to 0.

FIG. 2A is a representation of a first example a mapping resource 202comprising a plurality of nodes shown as circles, where each node isassociated with location within a virtual fabrication chamber 204, whichmodels a real fabrication chamber, and is further associated with aparticular dimensional compensation (for example, a scaling factor in Y,or an offset in Z). In this example, a 3 by 3 by 3 grid of nodes isprovided. The nodes in this case are evenly distributed in alldimensions, although this need not be the case in all examples. Eachnode represents a value for a dimensional compensation

An object, in this example a cylinder 206 is to be generated in thefabrication chamber, and the center 208 (in this example, defined as thecenter of mass of the object 206 is marked). The center 208 can beenclosed by a tetrahedron 210 with its four vertices formed by nodes ofthe grid. Therefore, in this example, the values of these fourvertices/nodes are used to interpolate a value to be used as adimensional compensation for the object. For example, this may comprisedetermining a weighted average of the values associated with thelocations of the vertices/nodes, wherein the weighting depends on thedistance of each vertex from the center 208, with closer vertices beinggiven greater weighting. This may be termed ‘barycentric tetrahedralinterpolation’.

In the event that the center 208 coincides with a location of a node,the value of that node may be adopted as the value of the dimensionalcompensation.

In this way, an effectively continuous mapping between the dimensionalcompanions to the coordinate space of a build volume may be provided.The error associated with interpolation may be reduced by increasing thenumber of points and reducing the spacing there between.

In one practical example, fixed spacing may be used in the grid, whichmay be arranged such that the whole build volume is substantiallycovered, and the grid is centered between the limits.

For example, the number of nodes in each axis may be calculated as theratio between each dimension and the node spacing, rounded up to thenext integer number if not integer, and by adding one. Considering aparticular example with xyz coordinates, the spacing between the nodesof the grid to may be set to 50 mm for a fabrication chamber withprintable dimensions of 250 mm×165 mm×110 mm, with an origin ofcoordinates defined as (0,0,0), In such an example, the number of nodesin each axis may be determined as follows:

250/50=5->5+1=6  x)

165/50=3.3->4+1=5  y)

110/50=2.2->3+1=4  z)

The nodes may be set such that the printable space is centered betweenthe first and the last values in each dimension. The range of the nodesin each dimension is the product of the number of nodes minus one by thespacing value. To continue the example above, the range of the nodes ineach dimension is as follows:

50*5=250 mm  x)

50*4=200 mm  y)

50*3=150 mm  z)

The minimum node may be set to be the origin of coordinates minus halfof the difference between the range of the nodes and the printablerange. To continue the example above, the placement of the minimum nodein xyz coordinates may be determined as follows:

0−0.5*(250−250)=0  x)

0−0.5*(200−165)=−17.5  y)

0−0.5*(150−110)=−20  z)

This means that the minimum node in this example relates to the x,y,zposition within the fabrication chamber of (0, −17.5, −20)

The rest of the nodes coordinates are given by the translations of theminimum node in each dimension using the spacing an integer amount oftimes. The allowed coordinate values by axis in the example aretherefore positioned as follows:

{0,50,100,150,200,250}  x)

{−17.5,32.5,82.5,132.5,182.5}  y)

{−20,30,80,130}  z)

All the coordinates of the nodes of grid in this example are given bythe possible combinations of the coordinates by axis, in this case therewould be 6*5*4=120 nodes in total.

In other examples, the spacing value of the grid can be different ineach dimension. This may for example be appropriate if a dimensionalcompensation is more variable in one dimension than in another.

In some examples the grid may vary over the virtual fabrication chamber.In some examples, the spacing of nodes may vary according to thevariability of the values, such that more values/nodes are stated ordefined when the rate of change of the node to node values is higherthan when it is lower. For example, there may be more nodes (i.e. thenodes may have a closer spacing) towards the edges of the fabricationchamber than in a center. This could for example reflect that suchregions tend to be associated with higher thermal gradients. However,providing a regular grid in which the nodes are located in straightlines in each direction forming rectangular parallelepipeds) has anadvantage in that it is relatively simple of identifying the vertices ofthe tetrahedron for interpolation as described above.

In addition, the methodology can be extended to coordinates that do notrepresent spatial dimensions, like a volume or a surface of the partbeing printed. In those cases, an appropriate range and spacing forthose dimensions may be set.

For example, it may be determined that the dependency of the scalingfactors is strongly related to a vertical coordinate (e.g. a z height)and a measure of the mean wall thickness defined as volume divided bysurface. A two dimensional grid may be defined, wherein the bounds ofthe mean wall thickness axis are defined by the minimum and maximum meanwall thicknesses used to determine the relationship (for example, theminimum and maximum mean wall thicknesses used to generate a trainingdataset, as will be further discussed below), and the spacing of thenodes may be determined based on, for example the rate of change of thedependency as set out above. Any mean wall thickness values which areoutside the minimum-maximum node range may be taken to have a valueequal to that of the minimum or the maximum node as appropriate.

In another example, there may be additional descriptors used todetermine a dimensional compensation in a model in which an xyzdependence is also determined. Again, the bounds of such additionaldescriptors (for example, mean wall thickness, object volume, or someother object property, or an operational parameter of the additivemanufacturing apparatus) may be determined and sampled to define nodes.In some examples, interpolating in such examples may comprise ageneralization of the tetrahedral interpolation in a higher number ofdimensions. In other examples, a 3D tetrahedral interpolation withinthree coordinates (which could be the dimensional coordinates, but inprinciple could be any three descriptors) but, rather than beingassociated with a value, each node of the grid may be associated with avector with scaling factors (or a matrix) for each node sampled of theremaining coordinates.

For example, the value of each vector may be determined or interpolatedbased on a known object feature/position, and a tetrahedralinterpolation may be applied to these values.

In other words, interpolation may be generalised to a higher number ofdimensions in any of a number of ways. Interpolation may also be carriedout in one or two dimensions using similar principles to those discussedabove.

FIG. 2B shows an example visualization of a mapping resource 212 ofscaling factors to apply in the Z dimension, wherein the scaling factorsare associated with an xyz position within a fabrication chamber shownas a sphere representing a node. The value of each node is representedon a color scale and in this example is a vertical scaling factor (i.e.resulting in a change of the height of the object in the orientation inwhich it is generated). The scaling factor is greater than one where avirtual object is to be enlarged and less than one where a virtualobject is to be reduced in size. Corresponding models may be created forscaling factors to apply in other dimensions (i.e. to change a width ora depth of an object in the orientation in which it is generated) eachdimension and/or for each of a scaling factor and an offset factor.

FIG. 3 is an example method of object generation, comprising, in block302, determining a centre point of an object to be generated in additivemanufacturing when the object is in its intended locations within afabrication chamber. This may comprise generating a virtual fabricationchamber, in which one or a plurality of virtual objects are arranged inthe position which it is intended that the objects would occupy ongeneration. In this example, the centre location is a centre of mass ofthe object, but in another example, it may be some other location, forexample the centre of a bounding box, i.e. the smallest cuboid which canfully enclose the object. In another example, a different location maybe used, for example the lowermost coordinate, or any otherpredetermined coordinate.

Block 304 comprises determining, from a mapping resource, a plurality ofdimensional compensation values relating to locations which enclose thepoint location. In this example, the dimensional compensation valuescomprise three scaling factors and three offset factors, where in eachof the scaling factors and each of the offset factors is associated withone of three orthogonal axes. In some examples, the mapping resource maycomprise a plurality of 3D look-up tables, each relating to a differentdimensional compensation (e.g. a different axis and/or one of offset andscale). The nominal spatial distribution of values within the differentlook-up tables may be different. In other examples, there may be acombined resource, for example with nodes which are associated with aplurality of values relating to the different axes for offsets and/orscale.

Block 306 comprises determining a weighted average of the plurality ofdimensional compensation values. As noted above, the weighting may bebased on the distance between the location indicative of the objectplacement (in this example, the object centre) and the node.

Block 308 comprise applying, using at least one processor, thedetermined dimensional compensations to the object model data togenerate modified object model data. This therefore changes the modeldata to include scale and/or offset factor where applicable in eachdimension. The scale and/or offset factor may be applied to a mesh modelof the object or to a voxel model of the object.

Block 310 comprises determining object generation instructions (or‘print instructions’) for generating the object. The object generationinstruction in some examples may specify an amount of print agent to beapplied to each of a plurality of locations on a layer of buildmaterial. For example, generating object generation instructions maycomprise determining ‘slices’ of the selected virtual build volume, andrasterising these slices into pixels (or voxels, i.e. three-dimensionalpixels). An amount of print agent (or no print agent) may be associatedwith each of the pixels/voxels. For example, if a pixel relates to aregion of a build volume which is intended to solidify, the objectgeneration instructions may be generated to specify that fusing agentshould be applied to a corresponding region of build material in objectgeneration. If however a pixel relates to a region of the build volumewhich is intended to remain unsolidified, then object generationinstructions may be generated to specify that no agent, or a coalescencemodifying agent such as a detailing agent, may be applied thereto. Inaddition, the amounts of such agents may be specified in the generatedinstructions and these amounts may be determined based on, for example,thermal considerations and the like.

Block 312 comprises generating an object based on the object generationinstructions. For example, such an object may be generated layer bylayer. For example, this may comprise forming a layer of build material,applying print agents, for example through use of ‘inkjet’ liquiddistribution technologies in locations specified in the objectgeneration instructions for an object model slice corresponding to thatlayer using at least one print agent applicator, and applying energy,for example heat, to the layer. Some techniques allow for accurateplacement of print agent on a build material, for example by usingprintheads operated according to inkjet principles of two dimensionalprinting to apply print agents, which in some examples may be controlledto apply print agents with a resolution of around 600 dpi, or 1200 dpi.A further layer of build material may then be formed and the processrepeated, for example with the object generation instructions for thenext slice.

In this way, the object once formed may end up being closer to anintended size.

While in this example, the modification to the data was made beforeobject generation instructions were determined, this need not be thecase in all examples, and in other examples object generationinstructions may be generated.

In some examples, the methods set out herein may be combined with othermethods of object model modification. For example, a modificationfunction may be employed in the vicinity, or locality, of smallfeatures. An erosion of such small features may result in anunacceptable reduction in their size, either obliterating the feature orrendering it too small to fuse or too delicate to survive cleaningoperations. For example, if a feature has a dimension of around 0.5 mm,this may correspond to 12 voxels at 600 dpi. If three or four voxels areeroded from the side of such a small feature, it will lose approximately50 to 60% of its cross-section, reducing its size to less than 0.3 mm.Such a feature may be too small to survive cleaning operations. Thus, insome examples, other functions may be used to ensure that small featuresare preserved.

As briefly mentioned above, in one example, the mapping resource(s) maycomprise or be based on an inference model generated a training datasetfor an inference model to generate dimensional modifications to apply toobject models to compensate for departures from model dimensions inobjects generated using additive manufacturing based on those models. A‘training dataset’ in this context is a set of data which is processedto allow an inference model to be ‘learnt’. A relationship betweendimensional inaccuracies and the placement of an object in a fabricationchamber may be inferred from the training set and used to build theinference model. This in turn may be used to provide a mapping resource,for example with explicitly defined values in a look-up table relatingto a 3D space as described above.

For example, this may make use of data gathered from a set of objectsgenerated using an additive manufacturing process. In some examples,these may be generated using the same class of additive manufacturingprocess (for example, all the objects may be generated using selectivelaser sintering, or all the objects may be generated using a fusingagent printed onto a layer of build material, or all the objects may begenerated using some other common additive manufacturing process). Inother examples, all the objects may be generated using a particularclass of apparatus (for example, a powder and fusing agent based 3Dprinting system). In some examples, all the objects may be generatedusing the same instance of an additive manufacturing apparatus (i.e. aparticular 3D printer).

Inference models may be developed by use of curve fitting, machinelearning and/or artificial intelligence techniques. In some examples,the set of objects from which measurements are acquired for forming atraining dataset may comprise at least 100 objects, and in otherexamples may be many times higher, for example comprise sat least 1000,or tens or hundreds of thousands of objects. An inference model based ona training dataset will generally improve with size, but the impact ofadditional samples reduces as the sample set grows large. In someexamples, generating the inference model may comprise, for example,carrying out a data fitting and/or function approximation for datainterpolation operations on the training dataset. For example, theinference model may be generated using curve fitting, in some examplesusing spline based data interpolation techniques, for example based onthin-plate splines. In other examples, other methods may be used, forexample other polyharmonic data fitting techniques (for example otherpolyharmonic splines), data regression such as Support Vector Machineregression, smoothing techniques or the like. The inference model may berealised as an algorithm, a look-up table, a neural network withprogrammed weights or may be represented in some other way.

In other examples, the mapping resource(s) may be developed based ontheoretical or measured models of behaviour such as thermal behaviourand/or material behaviour modelling predicted deviations from intendedobject dimensions in additive manufacturing.

In some examples, there may be a plurality of mapping resources, whichmay relate to different object generation parameter values. Theparameter(s) may be any parameter which may have an impact ondimensional inaccuracy. For example, the parameter(s) may comprise any,or any combination of, environmental conditions, object generationapparatus, object generation material composition, object coolingprofile or print mode. These may be specified, for example, by input toat least one processor.

A specification of the environmental conditions may, for example,comprise providing any, or any combination of, an indication of theenvironmental temperature, humidity, air pressure or the like. It hasbeen noted that varying the environmental conditions can result indifferent dimensional inaccuracies being seen in generated objects.

A specification of the object generation material composition maycomprise any, or any combination of, a specification of a choice ofbuild material and/or print agent, a source or batch of objectgeneration material to be used, a proportion of fresh to recycled buildmaterial or the like. Such factors may also impact the dimensionalinaccuracies seen in generated objects.

Cooling profiles may also impact dimensional inaccuracies. For somebuild material types, relatively slow cooling profiles may have less ofan impact on dimensional accuracy than faster cooling profiles, whichmay be more likely to cause a change (or a greater change) in objectdimensions.

The choice of print mode (for example, draft/prototype/fast ordetailed/slow) may also have an effect on dimensional inaccuracy, withdraft, prototype or fast modes tending to be associated with greaterdimensional inaccuracy than detailed or slower operational modes.

FIG. 4 shows an apparatus 400 comprising processing circuitry 402.

The processing circuitry 402 comprises a mapping resource 404 and amodel modification module 406.

The mapping resource 404 associates parametrical transformations tocompensate for object deformation in additive manufacturing to objectplacement locations within a fabrication chamber. The locations may bedescribed by coordinates in one or more axis. In one example, themapping resource represents at least one multidimensional (e.g. 3D) gridof values (‘nodes’) with locations within a fabrication chamber. In oneexample, the mapping resource comprises a set of parametricaltransformation values associated with distributed spatial locationswithin a fabrication chamber. In some examples, for at least one set ofparametrical transformation values, the distributed spatial locationsare evenly distributed in space in at least on dimension. Theparametrical transformation values may comprise geometricaltransformation values, for example scale and/or offset values. In someexamples, the mapping resource 404 may be stored as data in a memory ormemory resource(s) (for example, a machine readable medium) of theapparatus 400.

The model modification module 406, in use of the apparatus 400,determines at least one parametrical transformation for object modeldata describing an object to be generated using additive manufacturingfrom the mapping resource based on the object's intended placementlocation within a fabrication chamber and modifies the object model datausing the parametrical transformation. In some examples, the modelmodification module 406 determines the at least one parametricaltransformation for an object to be generated using additivemanufacturing from the mapping resource using interpolation, as has beendescribed above.

FIG. 5 shows additive manufacturing apparatus 500 to generate an objectcomprising processing circuitry 502. The processing circuitry 502comprises the mapping resource 404, which is stored in a memory thereof,and the model modification module 406 of FIG. 5 and further comprises aprint instructions module 504.

The additive manufacturing apparatus 500, in use thereof, generates theobject in a plurality of layers (which may correspond to respectiveslices of an object model) according to control data. The additivemanufacturing apparatus 500 may for example generate an object in alayer-wise manner by selectively solidifying portions of layers of buildmaterials. The selective solidification may in some examples be achievedby selectively applying print agents, for example through use of‘inkjet’ liquid distribution technologies, and applying energy, forexample heat, to the layer. The additive manufacturing apparatus 500 maycomprise additional components not shown herein, for example any or anycombination of a fabrication chamber, a print bed, printhead(s) fordistributing print agents, a build material distribution system forproviding layers of build material, energy sources such as heat lampsand the like.

The control data (for example comprising object generation instructionsand/or pint instructions) in this example is generated by the printinstructions module 504. The generated control data may, in use thereof,control the additive manufacturing apparatus 500 to generate each of aplurality of layers of the object. This may for example comprisespecifying area coverage(s) for print agents such as fusing agents,colorants, detailing agents and the like. In some examples, objectgeneration parameters are associated with object model sub-volumes. Insome examples, other parameters, such as any, or any combination ofheating temperatures, build material choices, an intent of the printmode, and the like, may be specified. In some examples, halftoning maybe applied to determined object generation parameters to determine whereto place fusing agent or the like. The control data may be specified inassociation with sub-volumes. In some examples, the control datacomprises a print agent amount associated with sub-volumes.

The processing circuitry 402, 502 or the modules thereof may carry outany of the blocks of FIG. 1, or any of block 302 to 310 of FIG. 3.

FIG. 6 shows a tangible machine-readable medium 600 associated with aprocessor 602. The machine-readable medium 600 comprises instructions604 which, when executed by the processor 602, cause the processor 602to carry out tasks. In this example, the instructions 604 compriseinstructions 606 to cause the processor 602 to determine arepresentative coordinate of an intended placement location of an objectwithin a fabrication chamber and instructions 608 to cause the processor602 to interpolate a dimensional compensation to apply to object modeldata representing the object based on the representative coordinateusing a look-up resource associating dimensional compensations with eachof a plurality of locations in the fabrication chamber. The look-upresource may comprise data stored in the machine-readable medium 600, ormay be stored in a separate memory resource. The representativecoordinate may relate to at least one direction, for example at leastone of an x, y or z axis.

In some examples, the instructions 604 comprise instructions which whenexecuted cause the processor 602 to apply the interpolated dimensionalcompensation to a data model representing the object.

In some examples, the instructions when executed cause the processor 602to carry out any of the blocks of FIG. 1 or any of block 302 to 310 ofFIG. 3. In some examples, the instructions may cause the processor 602to act as any part of the processing circuitry 502 of FIG. 5 or FIG. 6.

Examples in the present disclosure can be provided as methods, systemsor machine-readable instructions, such as any combination of software,hardware, firmware or the like. Such machine-readable instructions maybe included on a computer readable storage medium (including but notlimited to disc storage, CD-ROM, optical storage, etc.) having computerreadable program codes therein or thereon.

The present disclosure is described with reference to flow charts and/orblock diagrams of the method, devices and systems according to examplesof the present disclosure. Although the flow diagrams described aboveshow a specific order of execution, the order of execution may differfrom that which is depicted. Blocks described in relation to one flowchart may be combined with those of another flow chart. It shall beunderstood that each block in the flow charts and/or block diagrams, aswell as combinations of the blocks in the flow charts and/or blockdiagrams can be realized by machine-readable instructions.

The machine-readable instructions may, for example, be executed by ageneral-purpose computer, a special purpose computer, an embeddedprocessor or processors of other programmable data processing devices torealize the functions described in the description and diagrams. Inparticular, a processor or processing apparatus may execute themachine-readable instructions. Thus, functional modules of the apparatus(such as the mapping resource 404, the model modification module 406and/or the print instructions module 504) may be implemented by aprocessor executing machine-readable instructions stored in a memory, ora processor operating in accordance with instructions embedded in logiccircuitry. The term ‘processor’ is to be interpreted broadly to includea CPU, processing unit, ASIC, logic unit, or programmable gate arrayetc. The methods and functional modules may all be performed by a singleprocessor or divided amongst several processors.

Such machine-readable instructions may also be stored in a computerreadable storage that can guide the computer or other programmable dataprocessing devices to operate in a specific mode.

Machine-readable instructions may also be loaded onto a computer orother programmable data processing devices, so that the computer orother programmable data processing devices perform a series ofoperations to produce computer-implemented processing, thus theinstructions executed on the computer or other programmable devicesrealize functions specified by flow(s) in the flow charts and/orblock(s) in the block diagrams.

Further, the teachings herein may be implemented in the form of acomputer software product, the computer software product being stored ina storage medium and comprising a plurality of instructions for making acomputer device implement the methods recited in the examples of thepresent disclosure.

While the method, apparatus and related aspects have been described withreference to certain examples, various modifications, changes,omissions, and substitutions can be made without departing from thespirit of the present disclosure. It is intended, therefore, that themethod, apparatus and related aspects be limited by the scope of thefollowing claims and their equivalents. It should be noted that theabove-mentioned examples illustrate rather than limit what is describedherein, and that those skilled in the art will be able to design manyalternative implementations without departing from the scope of theappended claims. Features described in relation to one example may becombined with features of another example.

The word “comprising” does not exclude the presence of elements otherthan those listed in a claim, “a” or “an” does not exclude a plurality,and a single processor or other unit may fulfil the functions of severalunits recited in the claims.

The features of any dependent claim may be combined with the features ofany of the independent claims or other dependent claims.

1. A method comprising: receiving, at at least one processor, objectmodel data representing at least a portion of an object that is to begenerated by an additive manufacturing apparatus by fusing buildmaterial within a fabrication chamber; determining, using at least oneprocessor, an indication of an intended object placement location withinthe fabrication chamber; determining, using at least one processor, adimensional compensation to apply to the object model data, wherein thedimensional compensation is determined using a mapping resource relatingdimensional compensations to object placement locations; and applying,using at least one processor, the determined dimensional compensation tothe object model data to generate modified object model data.
 2. Amethod according to claim 1 in which determining the indication of theintended object placement location within the fabrication chambercomprises determining a point location indicative of an intended objectplacement; determining, from the mapping resource, a plurality ofdimensional compensation values relating to locations which enclose thepoint location; and determining a dimensional compensation bydetermining a weighted average of the plurality of dimensionalcompensation values.
 3. A method according to claim 2 wherein the pointlocation is indicative of a centre point of the object when the objectis in its intended location within the fabrication chamber.
 4. A methodaccording to claim 1 in which the dimensional compensation specifies atleast one of a scaling factor and an offset factor.
 5. A methodaccording to claim 4 in which the dimensional compensation comprisesthree scaling factors and three offset factors, where in each of thescaling factors and each of the offset factors is associated with one ofthree orthogonal axes.
 6. A method according to claim 1 furthercomprising determining object generation instructions for generating theobject, the object generation instructions specifying an amount of printagent to be applied to each of a plurality of locations on a layer ofbuild material.
 7. A method according to claim 6 further comprisinggenerating an object based on the object generation instructions. 8.Apparatus comprising processing circuitry comprising: a mapping resourceassociating parametrical transformations to compensate for objectdeformation in additive manufacturing to object placement locationswithin a fabrication chamber; and a model modification module todetermine at least one parametrical transformation for object model datadescribing an object to be generated using additive manufacturing,wherein the parametrical transformation is determined from the mappingresource based on the intended placement of the object within afabrication chamber, wherein the model modification module is further tomodify the object model data using the parametrical transformation. 9.Apparatus according to claim 8 in which the mapping resource comprises aset of parametrical transformation values associated with distributedspatial locations within a fabrication chamber.
 10. Apparatus accordingto claim 9 in which the distributed spatial locations are evenlydistributed in space.
 11. Apparatus according to claim 8 in which themodel modification module is to determine the at least one parametricaltransformation for an object to be generated using additivemanufacturing from the mapping resource using interpolation. 12.Apparatus according to claim 8 further comprising: a print instructionsmodule for determining print instructions for generating the object. 13.Apparatus according to claim 12 further comprising additivemanufacturing apparatus to generate an object according to control datagenerated from the modified object model data.
 14. A tangiblemachine-readable medium comprising instructions which when executed by aprocessor cause the processor to: determine a representative coordinateof an intended placement location for an object within a fabricationchamber; and using a look-up resource associating dimensionalcompensations with each of a plurality of locations in the fabricationchamber, interpolate a dimensional compensation to apply to object modeldata representing the object based on the representative coordinate. 15.A tangible machine-readable medium according to claim 14 furthercomprising instructions which when executed by the processor cause theprocessor to apply the interpolated dimensional compensation to a datamodel representing the object.